package com.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.project.bean.RoomBean;

import java.util.List;

public interface IRoomService {
    /**
     * 房间动态条件分页查询
     * 动态条件分页查找房间信息，同时统计每个房间的已住人数。
     * @param pageNum 页码
     * @param roomAddress 房间地址
     * @param roomStatus 房间状态
     * @param roomGender 房间类型
     * @param roomCanIn 可住房间
     * @return 房间分页对象
     */
    public IPage<RoomBean> cutFind(Integer pageNum, String roomAddress, String roomStatus, String roomGender, String roomCanIn);

    /**
     * 添加房间
     * @param roomBean 房间对象
     */
    public void add(RoomBean roomBean);



    /**
     * 删除房间
     * 1、统计房间的已住人数
     * 2、如果已住人数为0,则先删除该房间的设施记录，再删除房间，返回true
     * 3、如果已住人数不为0,则返回false
     * @param roomID 房间id
     * @return 是否删除成功：true-成功/false-失败
     */
    public boolean del(Integer roomID);

    /**
     * 查看房间信息
     * 1、根据id查找房间，同时统计房间的已住人数。
     * 2、查询房间所住的学生集合，学生信息中需要查询班级名称
     * @param roomID 房间id
     * @return 房间对象
     */
    public RoomBean findByID(Integer roomID);

    /**
     * 按性别查询可住房间
     * @param roomGender 房间性别（房间类型）
     * @return 房间集合
     */
    public List<RoomBean> findByGender(String roomGender);
}
